﻿////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <copyright>Copyright 2008-2011 Andreas Huber Doenni</copyright>
// Distributed under the Microsoft Public License (Ms-PL).
// See accompanying file License.txt or copy at http://mews.codeplex.com/license.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

namespace Mews.Mime
{
    /// <summary>Enumerates the reason kinds for body fallback.</summary>
    public enum FallbackReasonKind
    {
        /// <summary>The value of the Content-Transfer-Encoding field is not recognized.</summary>
        /// <remarks>Fallback is application/octet-stream, see
        /// <a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a>, 6.4./8.</remarks>
        UnrecognizedContentTransferEncoding,

        /// <summary>The media type specified by the Content-Type field is not recognized.</summary>
        /// <remarks>Fallback is application/octet-stream, see
        /// <a href="http://www.ietf.org/rfc/rfc2049.txt">RFC 2049</a>, 2/(7) on page 5.</remarks>
        UnrecognizedMediaType,

        /// <summary>The Content-Type field specifies an image media type but the format of the data is unrecognized.
        /// </summary>
        /// <remarks>Fallback is application/octet-stream, see
        /// <a href="http://www.ietf.org/rfc/rfc2046.txt">RFC 2046</a>, 4.2./3.</remarks>
        UnrecognizedImageFormat,

        /// <summary>The Content-Type field specifies a message media type but the subtype is unrecognized.</summary>
        /// <remarks>Fallback is application/octet-stream, see
        /// <a href="http://www.ietf.org/rfc/rfc2046.txt">RFC 2046</a>, 5.2.4./1.</remarks>
        UnrecognizedMessageSubtype,

        /// <summary>The Content-Type field specifies a text media type but an unrecognized subtype. Applies only when
        /// the charset parameter is recognized.</summary>
        /// <remarks>Fallback is text/plain, see
        /// <a href="http://www.ietf.org/rfc/rfc2046.txt">RFC 2046</a>, 4.1.4./1.</remarks>
        UnrecognizedTextSubtype,

        /// <summary>The Content-Type field specifies a text media type but the charset parameter specifies an
        /// unrecognized charset.</summary>
        /// <remarks>Fallback is application/octet-stream, see
        /// <a href="http://www.ietf.org/rfc/rfc2046.txt">RFC 2046</a>, 4.1.4./1.</remarks>
        UnrecognizedTextCharset,

        /// <summary>The Content-Type field specifies a multipart media type but the subtype is unrecognized.</summary>
        /// <remarks>Fallback is multipart/mixed, see
        /// <a href="http://www.ietf.org/rfc/rfc2046.txt">RFC 2046</a>, 5.1.7./1.</remarks>
        UnrecognizedMultipartSubtype,

        /// <summary>The Content-Type field specifies a multipart media type but lacks a boundary parameter.
        /// </summary>
        /// <remarks>Fallback is application/octet-stream, RFCs seem to be silent on this scenario.</remarks>
        MissingMultipartBoundaryParameter
    }
}
